// 导入 express 模块
const express = require('express')
// 创建 express 的服务器实例
const app = express()

// 导入 cors 中间件
const cors = require('cors')

// 导入全局配置文件
const config = require('./config')

// 导入解析token模块
const expressJWT =  require('express-jwt')

// 将 cors 注册为全局中间件
app.use(cors())


// 配置解析表单数据的中间件，注意：这个中间件，只能解析 application/x-www-form-urlencoded 格式的表单数据
app.use(express.urlencoded({ extended: false }))



// 配置解析Token的中间件
app.use(expressJWT({ secret: config.jwtSecretKey }).unless({ path: [/^\/api/] }))

// 导入并注册用户路由模块
const userRouter = require('./router/user')
app.use('/api', userRouter)

// 导入使用用户信息的路由模块
const userInfoRouter = require('./router/userInfo')
app.use('/my',userInfoRouter)

// 定义错误级别的中间件
app.use((err, req, res, next) => {
    if(err.name == 'UnauthorizedError') return res.send({ status: 1, message: 'token认证失败!' })
})

// 调用 app.listen 方法，指定端口号并启动web服务器
app.listen(3007, function () {
  console.log('api server running at http://127.0.0.1:3007')
})
